﻿// <copyright file="ReissueRequestBody.cs" company="SharpSTS">
// Copyright (c) 2007, 2008 All Right Reserved, http://sharpsts.com/
//
// This source is subject to the Microsoft Permissive License.
// Please see the License.txt file for more information.
// All other rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// </copyright>
// <author>Barry Dorrans</author>
// <email>barryd@idunno.org</email>
// <date>2008-06-13</date>
// <summary>Provides the data contract for a Reissue request for an Information Card.</summary>

namespace SharpSTS.CardControl
{
    using System.Runtime.Serialization;

    using Constants;

    /// <summary>
    /// A <see cref="DataContract"/> for the <see cref="ICardControlService"/> Reissue request.
    /// </summary>
    [DataContract(Name = "ReissueRequestBody", Namespace = Namespaces.Data)]
    public class ReissueRequestBody
    {
        /// <summary>
        /// Gets or sets the card identifier.
        /// </summary>
        /// <value>The card identifier.</value>
        [DataMember(Order = 1, IsRequired = true)]
        public string CardIdentifier
        {
            get; 
            set;
        }

        /// <summary>
        /// Gets or sets the card version.
        /// </summary>
        /// <value>The card version.</value>
        [DataMember(Order = 2, IsRequired = false)]
        public int CardVersion 
        { 
            get; 
            set; 
        }

        /// <summary>
        /// Gets or sets a value indicating whether reissuing the card should also increment the card version number.
        /// </summary>
        /// <value><c>true</c> if reissuing the card should also increment the card version number; otherwise, <c>false</c>.</value>
        [DataMember(Order = 3, IsRequired = false)]
        public bool IncrementVersion
        {
            get; 
            set;
        }
    }
}
